//#include<bits/stdc++.h>
//using namespace std;
//typedef long long LL;
//bool is(LL a, LL b, LL c) {
//    if (a + b > c && a + c > b && b + c > a)
//        return 1;
//    return 0;
//}
//int main() {
//    LL a, b, c;
//    cin >> a >> b >> c;
//    if (is(a, b, c * 2))
//        cout << "Yes" << endl;
//    else if (is(a * 2, b, c))
//        cout << "Yes" << endl;
//    else if (is(a, b * 2, c))
//        cout << "Yes" << endl;
//    else
//        cout << "No" << endl;
//    return 0;
//}
//#include<bits/stdc++.h>
//using namespace std;
//int main() {
//    int n;
//    cin >> n;
//    for (int i = 0; i < n; i++)
//    {
//        int x;
//        cin >> x;
//    }
//    if (n == 1)
//        cout << -1 << endl;
//    else if (n % 2 == 0)
//        cout << n / 2 << endl;
//    else
//        cout << n / 2 + 1 << endl;
//    return 0;
//}
//#include<bits/stdc++.h>
//using namespace std;
//unordered_map<int, int>ma;
//int main() {
//    int sum = 0;
//    int flag = 0;
//    ma[10] = 100;
//    auto i = ma.begin();
//    if (flag)
//        cout << -1 << endl;
//    else
//        cout << sum << endl;
//    return 0;
//}
//#include<bits/stdc++.h>
//using namespace std;
//typedef long long LL;
//int v[200010];
//int main() {
//    int n;
//    cin >> n;
//    for (int i = 0; i < n; i++)cin >> v[i];
//    n=unique(v, v + n)-v;
//    sort(v, v + n);
//    int sum = 0;
//    int length = 0;
//    for (int i = 0; i < n; i++)
//    {
//        int j = i;
//        while (j + 1 < n && v[j] == v[j + 1]-1)
//            j++;
//        if (length < j - i)
//        {
//            sum += j - i - length;
//            length = j - i;
//        }
//        sum++;
//        i = j;
//    }
//    cout << sum;
//}
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int v[200010];
vector<int>ans;
int main() {
    int n;
    cin >> n;
    for (int i = 0; i < n; i++)cin >> v[i];
    n = unique(v, v + n) - v;
    sort(v, v + n);
    int sum = 0;
    int length = 0;
    int Max = 1;

    for (int i = 0; i < n; i++)
    {
        int j = i;
        while (j + 1 < n && v[j] == v[j + 1] - 1)
            j++;
        if (Max < j+1 - i)
            Max = j+1 - i;
        sum++;
       // ans.push_back(j - i);
        i = j;
    }
    Max++;
    Max /= 2;
    sum++;
    sum += Max - 1;
    cout << sum;
}